-
Notifications
You must be signed in to change notification settings - Fork 13
[WIP] UxT-Reducer streaming terminals #190
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
A note from the discussion today: we will lose some static type-checking ability with this approach since reducers effectively become converters between the type of the terminal ( |
81abca6 to
b98a47c
Compare
Signed-off-by: Joseph Schuchart <[email protected]>
Signed-off-by: Joseph Schuchart <[email protected]>
Signed-off-by: Joseph Schuchart <[email protected]>
…ype are not convertible For convertible types we can avoid the first invocation but if there is no path to convert from T to U we use the reducer as converter. Signed-off-by: Joseph Schuchart <[email protected]>
Signed-off-by: Joseph Schuchart <[email protected]>
Signed-off-by: Joseph Schuchart <[email protected]>
Signed-off-by: Joseph Schuchart <[email protected]>
1d6915c to
1f152de
Compare
|
@evaleev I adapted the madness backend to the new tuple-based TT type list. Please take a look at it if you get a chance. @pnookala Could you take a look at how the MRA benchmark could work with the new interface? It would be a good test case to try out before merging :) In short, you can use different types in the input edge and the op argument and provide a reducer that "converts" between the two. |
Signed-off-by: Joseph Schuchart <[email protected]>
Signed-off-by: Joseph Schuchart <[email protected]>
Signed-off-by: Joseph Schuchart <[email protected]>
|
Pushed some fixes. I still cannot compile spmm with the madness backend and I have a hard time figuring out where the template void-voodoo goes haywire... |
Changed MRA example to use UxT reducer
Signed-off-by: Joseph Schuchart <[email protected]>
|
This approach is problematic, because it removes the compile-time checking capabilities of reducers. It is replaced with PR #229 |
Implement UxT reduction streaming terminals. The types of edge inputs and the types of the
oparguments (if different) are passed as tuples instead of variadic template arguments. This allows us to convert between U and T and to use different U and T for the reducer signature.This is WIP and so far only contains a draft of the interface in the PaRSEC backend, no UxT reducer tests yet.
Signed-off-by: Joseph Schuchart [email protected]